在docker容器中进行debbootstrap

您所在的位置:网站首页 debian debootstrap挂载报错 在docker容器中进行debbootstrap

在docker容器中进行debbootstrap

2023-04-13 08:10| 来源: 网络整理| 查看: 265

经过无数次的反复尝试,我得到了这个工作(注意,这是一个外来的chroot,即用于不同的客户机架构-对于本机架构,事情可能更简单):

apt-get -y install debootstrap fakechroot fakeroot qemu-user-static binfmt-support mkdir -p $CROSS_ROOT fakeroot -s .fakeroot.state debootstrap --variant=buildd --include=fakechroot,fakeroot,build-essential,ca-certificates,debian-archive-keyring,git,sudo --arch=${CROSS_ARCH} --foreign ${CROSS_RELEASE} $CROSS_ROOT $CROSS_MIRROR mkdir -p $CROSS_ROOT/usr/bin ln /usr/bin/qemu-*-static $CROSS_ROOT/usr/bin/ fakeroot -i .fakeroot.state -s .fakeroot.state chroot $CROSS_ROOT /debootstrap/debootstrap --second-stage --verbose

上面的fakechroot包是以前测试的剩余部分,这里可能不需要。唯一的限制是,一旦chroot设置好,你可能无法绑定挂载/proc和/sys。任何需要这些目录之一的东西都可能无法在chroot中工作。这是在GitLab CI runner(据我所知,它以非特权模式运行)和Debian buster上测试的。(Github Actions runner似乎限制较少-我将此设置从GHA移植到GL,并进行了一些调整。)主要外卖:fakechroot不需要(在非特权Docker容器上可以轻松使用chroot),但fakeroot是-因为这可以防止debootstrap在尝试挂载/sys或/proc时遇到权限错误。因为我们没有使用fakeroot,所以--variant可以是标准容器之一(不是fakechroot,因为这个变体在没有fakechroot的情况下将拒绝工作)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3